Repository navigation
fix(scripts): parse skill frontmatter as the hosts do - #20
Merged
Merged
Conversation
- scripts/check-frontmatter.cjs parses every SKILL.md frontmatter with eemeli/yaml (ISC) in strict mode as YAML 1.1 and 1.2, the versions PyYAML in Codex and js-yaml in Claude Code read, and validate-skills.sh calls it in place of a key: value line regex that passed a plain description holding ": ", which both hosts reject as a nested mapping - CI and the release workflow install the pinned yaml dev dependency before validating, and CI runs the gate's test, which proves that description fails at its line and the quoted one passes
LilMGenius
force-pushed
the
fix/frontmatter-yaml
branch
from
September 30, 2026 22:20
7539e1b to
b46ecb2
Compare
This was referenced Oct 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A skill whose frontmatter description holds a plain
:disappears from Claude Code and Codex, whilevalidate-skills.shreported it as valid.Failing input:
description: Write a guide: builds and tipsin anySKILL.md, thenbash scripts/validate-skills.sh.Cause:
scripts/validate-skills.shclaimed to check that frontmatter "is parseable YAML" but only matched onekey: valueline, so it never saw that js-yaml (Claude Code) and PyYAML (Codex'squick_validate.py) read that value as a nested mapping and reject the file.Evidence
description: Question it: nowplanted inssotizeskills/breadth/ssotize/SKILL.md:3:14: frontmatter is not valid YAML 1.1scripts/check-frontmatter.test.cjsruns in CI and proves the unquoted description fails at its line while the quoted one passes.Fix and scope
scripts/check-frontmatter.cjsparses every frontmatter strictly with theyamlpackage (ISC) under YAML 1.1 and 1.2, the versions the two hosts read, and reports file, line and column;validate-skills.shcalls it in place of the regex.yamlis a pinned dev dependency, and CI and the release workflow runnpm cibefore validating.The version moves to 0.17.6, a patch: the old check passed files the hosts reject.